<?php
require_once 'objects.php';

error_reporting(0);

session_start();
//$idEvento=$_GET['idEvento'];
$idUser=unserialize($_SESSION['usuario'])->id;
$tiempoNecesario=$_GET['tiempoNecesario'];
$tipoEvento=$_GET['tipo'];
$estadisticas=unserialize($_SESSION['estadisticas']);
$carbonActual=$estadisticas->carbon;
$plasticoActual=$estadisticas->plastico;

//OBTENCION DEL TIENPO FINAL
if($tipoEvento==TiposEventos::TROPAS && $_GET['numTropas']!=""){
	$numTropas=$numTropas=intval($_GET['numTropas']);
}else $numTropas=1;

if($tipoEvento!=TiposEventos::ATAQUE){
	$tiempoNecesario=explode(":",$tiempoNecesario);
	$addHora=($tiempoNecesario[0]+1);//se le añade 1 hora debido al reloj del linux
	$addMinuto=$tiempoNecesario[1]*$numTropas;
	$addSegundo=$tiempoNecesario[2]*$numTropas;
	
	$tiempoFinal=date('Y-m-d H:i:s', strtotime("+".$addHora." hour +".$addMinuto." min +".$addSegundo.+" sec"));
}
//--------------------------

//CALCULO LOS RECURSOS NECESARIOS Y COMPRUEBO QUE ESTEN DISPONIBLES, SI LO ESTAN LO BORRRO DE LA SESION
//Compruebo que haya recursos
switch ($tipoEvento){
	case TiposEventos::CONSTRUCCION:
		$idObjetivo=$_GET['idEdificio'];
		$edificios=unserialize($_SESSION['edificios']);
		$construccion=new Construccion($idObjetivo);
		$carbonNecesario=$construccion->nivel*$construccion->carbonInicial;
		$plasticoNecesario=$construccion->nivel*$construccion->plasticoInicial;
		//continuar....
		break;
	case TiposEventos::TROPAS:
		$idObjetivo=$_GET['idTropa'];
		$unidad=new Unidad($idObjetivo);
		$carbonNecesario=$unidad->carbonInicial*$numTropas;
		$plasticoNecesario=$unidad->plasticoInicial*$numTropas;
		break;
	case TiposEventos::ATAQUE:
		$nombreObjetivo= $_GET["nombreObjetivo"];
		$troglodita= $_GET["troglodita"];
		$espadachin= $_GET["espadachin"];
		$tirachinas= $_GET["tirachinas"];
		$caballero= $_GET["caballero"];
		$arquero= $_GET["arquero"];
		$jinete= $_GET["jinete"];
		$mago= $_GET["mago"];
		$pinguino= $_GET["pinguino"];
		$carbonNecesario=20*($troglodita+$espadachin+$tirachinas+$caballero+$arquero+$jinete+$mago+$pinguino);
		$plasticoNecesario=30*($troglodita+$espadachin+$tirachinas+$caballero+$arquero+$jinete+$mago+$pinguino);
		$tiempoFinal=date('Y-m-d H:i:s');
		$idObjetivo=User::getUserId($nombreObjetivo);
		break;
}
if($carbonActual>=$carbonNecesario && $plasticoActual>=$plasticoNecesario && $tipoEvento!='ataque'){
	//Borro los recursos de la sesion
	$estadisticas->carbon=$carbonActual-$carbonNecesario;
	$estadisticas->plastico=$plasticoActual-$plasticoNecesario;
	$estadisticas->volcarSesion($idUser);
	$_SESSION['estadisticas']=serialize($estadisticas);
	//Creo el evento en la BBDD si hay recursos
	$evento=new Evento();
	$evento->newEvento('',$tiempoFinal, $tipoEvento,$carbonNecesario,
		$plasticoNecesario, $idObjetivo.$tipoEvento.$idUser,
		$idObjetivo,$idUser);
	//Añado los puntos al usuario
	Estadisticas::addRank($evento->getPuntos(),$evento->idUsuario);
	//var_dump($evento);
}else if($carbonActual>=$carbonNecesario && $plasticoActual>=$plasticoNecesario && $tipoEvento=='ataque'){
	//Si existe el usuario
	if($idObjetivo!="" && $idObjetivo!=$idUser){
		if($_COOKIE[$idObjetivo]!="true" || !isset($_COOKIE[$idObjetivo])){	
			$user=new Tropas($idUser);
			$poderAtaque=$troglodita*1+$espadachin*2+$tirachinas*3+$caballero*4+$arquero*5+$jinete*6+$mago*7+$pinguino*8;
			$poderAtaqueMaximo=$user->troglodita*1+$user->espadachin*2+$user->tirachinas*3+$user->caballero*4+$user->arquero*5+$user->jinete*6+$user->mago*7+$user->pinguino*8;
			if($poderAtaque<=$poderAtaqueMaximo){
				//Borro los recursos de la sesion
				$estadisticas->carbon=$carbonActual-$carbonNecesario;
				$estadisticas->plastico=$plasticoActual-$plasticoNecesario;
				$estadisticas->volcarSesion($idUser);
				$_SESSION['estadisticas']=serialize($estadisticas);
				//--------------------------------
				$userObjetivo=new Tropas($idObjetivo);
				$poderAtaqueObjetivo=$userObjetivo->troglodita*1+$userObjetivo->espadachin*2+$userObjetivo->tirachinas*3+$userObjetivo->caballero*4+$userObjetivo->arquero*5+$userObjetivo->jinete*6+$userObjetivo->mago*7+$userObjetivo->pinguino*8;
				
				//Resultado de la batalla
				//Inicializacion de objetos
				$tropasAtacanteInicial=new Tropas($idUser);
				$tropasAtacanteInicial->troglodita=$troglodita;
				$tropasAtacanteInicial->espadachin=$espadachin;
				$tropasAtacanteInicial->tirachinas=$tirachinas;
				$tropasAtacanteInicial->caballero=$caballero;
				$tropasAtacanteInicial->arquero=$arquero;
				$tropasAtacanteInicial->jinete=$jinete;
				$tropasAtacanteInicial->mago=$mago;
				$tropasAtacanteInicial->pinguino=$pinguino;
				$tropasDefensorInicial=new Tropas($idObjetivo);
				$tropasAtacanteFinal=new Tropas($idUser);
				$tropasDefensorFinal=new Tropas($idObjetivo);
				//-----------------------
				//Resolucion de la puntuacion
				if($poderAtaqueObjetivo<$poderAtaque){
					Estadisticas::addRank(100,$idUser);
					$msg="Victoria";
				}else{
					Estadisticas::addRank(-100,$idUser);
					$msg="Derrota";
				}
				//--------------------------
				//Suerte Atacante
				foreach($tropasAtacanteInicial as $tropa=>$cantidad){
					if($msg=="Victoria"){
						$suerte=rand(0, 15); //Porcentaje de pérdidas
					}else $suerte=rand(20, 50); //Porcentaje de pérdidas
					$tropasAtacanteFinal->$tropa=round($tropasAtacanteFinal->$tropa-($cantidad*$suerte/100));
				}
				$tropasAtacanteFinal->guardarTropas($idUser);
				$_SESSION['tropas']=serialize($tropasAtacanteFinal);
				//---------------
				//Suerte Defensor
				foreach($tropasDefensorFinal as $tropa=>$cantidad){
					if($msg=="Derrota"){
						$suerte=rand(0, 15); //Porcentaje de pérdidas
					}else $suerte=rand(20, 50); //Porcentaje de pérdidas
					$tropasDefensorFinal->$tropa=round($tropasDefensorFinal->$tropa-($cantidad*$suerte/100));
				}
				$tropasDefensorFinal->guardarTropas($idObjetivo);
				//---------------
				//Devolucion del array
				$resultado[]=$msg;
				$resultado[]=$tropasAtacanteInicial;
				$resultado[]=$tropasDefensorInicial;
				$resultado[]=$tropasAtacanteFinal;
				$resultado[]=$tropasDefensorFinal;
				//--------------------
				
				setcookie($idObjetivo,"true",time()+(60*60*24)); //Expira en 24 horas
			}else $resultado[]="Eres un fullero";
		}else $resultado[]="Hoy ya has atacado a esa persona";	
	}else $resultado[]="Usuario incorrecto";
}else $resultado[]="No tienes suficientes recursos";

echo json_encode($resultado);
?>